-- We should be able to just say "set gTargetProjectIndex to index of front project document)"
-- but there is a bug in the SPM right now where it doesn't index projects by window layering.
tell application "Symantec Project Manager"
set projectName to full path name of project
set projectCount to count project documents
repeat with i from 1 to projectCount
set fpn to full path name of project document i
if (fpn is projectName) then
return i
end if
end repeat
end tell
return 0
end GetProjectIndex
on ConfirmTargetProject(targetProjectIndex)
set hitOK to true
tell application "Symantec Project Manager"
-- Confirm the project
set promptString to "Update project \"" & name of project document targetProjectIndex & "\"?"
set confirmResult to display dialog promptString buttons {"New Project", "Cancel", "OK"} default button 3
end tell
return button returned of confirmResult
end ConfirmTargetProject
on ChooseTargetProject()
tell application "Symantec Project Manager"
if number of project document = 0 then
set promptForNewProject to true
set targetProjectIndex to 0
--else if (class of front document is project document) then
-- set targetProjectIndex to my GetProjectIndex(front document)
else if (exists main_project) then
set targetProjectIndex to index of main_project
else
set targetProjectIndex to 0
end if
if (targetProjectIndex > 0) then
set confirmButton to my ConfirmTargetProject(targetProjectIndex)
if (confirmButton is not "OK") then
set promptForNewProject to true
else
set promptForNewProject to false
end if
else
set promptForNewProject to true
end if
if (promptForNewProject) then
try
--set newProjectSpec to new file with prompt "New Project Name:" default name gOriginalProjectName
create new project document as file (gODFDevPath & "Container:" & gBuildFolder & ":" & gOriginalProjectName)
set targetProjectIndex to my GetProjectIndex(front document)
on error
set targetProjectIndex to 0
end try
end if
end tell
return targetProjectIndex
end ChooseTargetProject
choose folder with prompt "Where is your ODF Development folder (ODFDev)?"
set gODFDevPath to (the result as string)
tell application "Finder"
if not (exists folder "ODF" of (gODFDevPath as alias)) then
error "Can't find the 'ODF' folder inside your ODF Development folder."
return
end if
if not (exists folder "Container" of (gODFDevPath as alias)) then
error "Can't find your 'Container' folder inside your ODF Development folder."
return
end if
if not (exists folder "•RBDbSy" of ((gODFDevPath & "Container:Sources:") as alias)) then
error "Can't find '•RBDbSy'. Did you run the MPW 'Build' script to build the resources?"
return
end if
make new folder at folder (gODFDevPath & "Container:" & gBuildFolder & ":") with properties {name:"(Container.RB.π)"}
make new alias file to ((gODFDevPath & gBuildFolder & ":Precompile Headers") as alias) at ((gODFDevPath & "Container:" & gBuildFolder & ":(Container.RB.π)") as alias)
make new alias file to ((gODFDevPath & gBuildFolder & ":Lib") as alias) at ((gODFDevPath & "Container:" & gBuildFolder & ":(Container.RB.π)") as alias)
make new alias file to ((gODFDevPath & "Container:Sources:") as alias) at ((gODFDevPath & "Container:" & gBuildFolder & ":(Container.RB.π)") as alias)
end tell
tell application "Symantec Project Manager"
activate
set gTargetProjectIndex to my ChooseTargetProject()
if (gTargetProjectIndex is 0) then
return
end if
set gSPMFolder to my GetParentFolder(filespec as string)
set temp to my GetParentFolder(filespec of project document gTargetProjectIndex as string)
set gTargetProjectFolder to my GetParentFolderOfFolder(temp)
end tell
-- Add all the groups
my AddGroup("1. Container", "", gTargetProjectIndex)
my AddGroup("2. ODF", "", gTargetProjectIndex)
my AddGroup("3. OpenDoc", "", gTargetProjectIndex)
my AddGroup("4. Runtime Libraries", "", gTargetProjectIndex)
my AddGroup("5. System Libraries", "", gTargetProjectIndex)
-- Add all the source files
my AddProjectEntry("EditCmds.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerClip.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerCmds.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerDDCmd.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerFrm.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerLink.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerPart.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerPromise.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerSel.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerView.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("FloatFrm.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("PalFrame.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("PatFrame.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ShpTrakr.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ToolFrm.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("Utils.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("FWRuler.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("SOMIter.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("SOMPart.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("BaseShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("BoundShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerPrxy.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("LineShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("OvalShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("RectShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("RRectShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("TextShp.cpp", "Sources:Sources:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerPart.rsrc", "Sources:•RBDbSy:", "project", "1. Container", gTargetProjectIndex)
my AddProjectEntry("ContainerStrs.rsrc", "Sources:•RBDbSy:", "project", "1. Container", gTargetProjectIndex)
set gTargetProjectFolder to my GetParentFolderOfFolder(gTargetProjectFolder)
my AddProjectEntry("Framewrk.xcoff", gBuildFolder & ":Lib:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("ODFFound.xcoff", gBuildFolder & ":Lib:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("ODFOS.xcoff", gBuildFolder & ":Lib:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("FWOSMisc.rsrc", "ODF:OS:FWOSMisc:•RBDbSy:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("FWPrint.rsrc", "ODF:Framewrk:FWPart:•RBDbSy:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("FWPrtStr.rsrc", "ODF:Framewrk:FWPart:•RBDbSy:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("FWWindow.rsrc", "ODF:OS:FWWindow:•RBDbSy:", "project", "2. ODF", gTargetProjectIndex)
my AddProjectEntry("ODUtilities.xcoff", gBuildFolder & ":Lib:", "project", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc User Interface.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Storage.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Messaging.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Layout.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Imaging.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Core.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("OpenDoc Binding.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)
my AddProjectEntry("Memory Manager.stub", "Macintosh Libraries:OpenDoc:Libraries:PEF:", "system", "3. OpenDoc", gTargetProjectIndex)